
_interrupt:
	MOVWF      R15+0
	SWAPF      STATUS+0, 0
	CLRF       STATUS+0
	MOVWF      ___saveSTATUS+0
	MOVF       PCLATH+0, 0
	MOVWF      ___savePCLATH+0
	CLRF       PCLATH+0

;SmartDigitalClock.c,703 :: 		void interrupt(void){
;SmartDigitalClock.c,705 :: 		if(TMR0IF_bit){
	BTFSS      TMR0IF_bit+0, BitPos(TMR0IF_bit+0)
	GOTO       L_interrupt0
;SmartDigitalClock.c,709 :: 		if (State == RFRemoteDecode_Detect_Min_High_Pulse){
	MOVF       _State+0, 0
	XORLW      1
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt1
;SmartDigitalClock.c,710 :: 		Tmr0_Cnt++;
	INCF       _Tmr0_Cnt+0, 1
	BTFSC      STATUS+0, 2
	INCF       _Tmr0_Cnt+1, 1
;SmartDigitalClock.c,711 :: 		Tmr0_Cnt1++;
	INCF       _Tmr0_Cnt1+0, 1
;SmartDigitalClock.c,713 :: 		if(Tmr0_Cnt >= ONE_HUNDREDnFITTY){        // Flashed RC0_pin after 500ms
	MOVLW      0
	SUBWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt118
	MOVLW      5
	SUBWF      _Tmr0_Cnt+0, 0
L__interrupt118:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt2
;SmartDigitalClock.c,715 :: 		RC5_bit = ~ RC5_bit;
	MOVLW
	XORWF      RC5_bit+0, 1
;SmartDigitalClock.c,716 :: 		Tmr0_Cnt = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,717 :: 		EndOfTimingWindows = 1;
	BSF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,718 :: 		}
L_interrupt2:
;SmartDigitalClock.c,719 :: 		if(Tmr0_Cnt1 >= FOUR_SECOND){          // 4s Learning Windowns break here
	MOVLW      122
	SUBWF      _Tmr0_Cnt1+0, 0
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt3
;SmartDigitalClock.c,721 :: 		State =  RFRemoteDecode_Detect_Sync_Bit ;
	CLRF       _State+0
;SmartDigitalClock.c,722 :: 		Tmr0_cnt1 = 0;
	CLRF       _Tmr0_Cnt1+0
;SmartDigitalClock.c,723 :: 		LearnCodeEvent = 0;
	BCF        _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
;SmartDigitalClock.c,724 :: 		}
L_interrupt3:
;SmartDigitalClock.c,727 :: 		TMR0 = 0x00;
	CLRF       TMR0+0
;SmartDigitalClock.c,728 :: 		}
	GOTO       L_interrupt4
L_interrupt1:
;SmartDigitalClock.c,729 :: 		else if( State == RFRemoteDecode_Process_Button ){
	MOVF       _State+0, 0
	XORLW      3
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt5
;SmartDigitalClock.c,731 :: 		Tmr0_cnt++;
	INCF       _Tmr0_Cnt+0, 1
	BTFSC      STATUS+0, 2
	INCF       _Tmr0_Cnt+1, 1
;SmartDigitalClock.c,734 :: 		switch (Tmr0_cnt){
	GOTO       L_interrupt6
;SmartDigitalClock.c,735 :: 		case TWO_SECOND :
L_interrupt8:
;SmartDigitalClock.c,736 :: 		RC4_bit = 1;
	BSF        RC4_bit+0, BitPos(RC4_bit+0)
;SmartDigitalClock.c,737 :: 		LearnMode = SingleONOFF;
	CLRF       _LearnMode+0
;SmartDigitalClock.c,738 :: 		break;
	GOTO       L_interrupt7
;SmartDigitalClock.c,739 :: 		case FOUR_SECOND :
L_interrupt9:
;SmartDigitalClock.c,740 :: 		RC4_bit = 0;
	BCF        RC4_bit+0, BitPos(RC4_bit+0)
;SmartDigitalClock.c,741 :: 		LearnMode = AllON ;
	MOVLW      1
	MOVWF      _LearnMode+0
;SmartDigitalClock.c,742 :: 		break;
	GOTO       L_interrupt7
;SmartDigitalClock.c,743 :: 		case SIX_SECOND :
L_interrupt10:
;SmartDigitalClock.c,744 :: 		RC4_bit = 1;
	BSF        RC4_bit+0, BitPos(RC4_bit+0)
;SmartDigitalClock.c,745 :: 		LearnMode = AllOFF;
	MOVLW      2
	MOVWF      _LearnMode+0
;SmartDigitalClock.c,746 :: 		break;
	GOTO       L_interrupt7
;SmartDigitalClock.c,747 :: 		case EIGHT_SECOND :
L_interrupt11:
;SmartDigitalClock.c,748 :: 		RC4_bit = 0;
	BCF        RC4_bit+0, BitPos(RC4_bit+0)
;SmartDigitalClock.c,749 :: 		LearnMode = Clearance;
	MOVLW      3
	MOVWF      _LearnMode+0
;SmartDigitalClock.c,750 :: 		break;
	GOTO       L_interrupt7
;SmartDigitalClock.c,751 :: 		}
L_interrupt6:
	MOVLW      0
	XORWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt119
	MOVLW      61
	XORWF      _Tmr0_Cnt+0, 0
L__interrupt119:
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt8
	MOVLW      0
	XORWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt120
	MOVLW      122
	XORWF      _Tmr0_Cnt+0, 0
L__interrupt120:
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt9
	MOVLW      0
	XORWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt121
	MOVLW      183
	XORWF      _Tmr0_Cnt+0, 0
L__interrupt121:
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt10
	MOVLW      0
	XORWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt122
	MOVLW      244
	XORWF      _Tmr0_Cnt+0, 0
L__interrupt122:
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt11
L_interrupt7:
;SmartDigitalClock.c,752 :: 		}
	GOTO       L_interrupt12
L_interrupt5:
;SmartDigitalClock.c,754 :: 		Tmr0_Cnt++;
	INCF       _Tmr0_Cnt+0, 1
	BTFSC      STATUS+0, 2
	INCF       _Tmr0_Cnt+1, 1
;SmartDigitalClock.c,755 :: 		if( Tmr0_Cnt == 6){ // auto reset after 150ms
	MOVLW      0
	XORWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt123
	MOVLW      6
	XORWF      _Tmr0_Cnt+0, 0
L__interrupt123:
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt13
;SmartDigitalClock.c,756 :: 		Tmr0_Cnt = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,757 :: 		j=0;
	BCF        _j+0, BitPos(_j+0)
;SmartDigitalClock.c,758 :: 		}
L_interrupt13:
;SmartDigitalClock.c,759 :: 		}
L_interrupt12:
L_interrupt4:
;SmartDigitalClock.c,761 :: 		TMR0IF_bit = 0;
	BCF        TMR0IF_bit+0, BitPos(TMR0IF_bit+0)
;SmartDigitalClock.c,762 :: 		}
L_interrupt0:
;SmartDigitalClock.c,763 :: 		if( PIR1.TMR1IF){           // Select Timer0 overload Interrupt
	BTFSS      PIR1+0, 0
	GOTO       L_interrupt14
;SmartDigitalClock.c,765 :: 		Tmr1_Cnt++;
	INCF       _Tmr1_Cnt+0, 1
;SmartDigitalClock.c,767 :: 		TMR1H = 0x00;
	CLRF       TMR1H+0
;SmartDigitalClock.c,768 :: 		TMR1L = 0x00;
	CLRF       TMR1L+0
;SmartDigitalClock.c,769 :: 		PIR1.TMR1IF = 0;
	BCF        PIR1+0, 0
;SmartDigitalClock.c,770 :: 		}
L_interrupt14:
;SmartDigitalClock.c,771 :: 		if(INTF_bit){
	BTFSS      INTF_bit+0, BitPos(INTF_bit+0)
	GOTO       L_interrupt15
;SmartDigitalClock.c,773 :: 		(State == RFRemoteDecode_Detect_Sync_Bit) ){       //50-100us
	MOVF       _State+0, 0
	XORLW      1
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt110
	MOVF       _State+0, 0
	XORLW      0
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt110
	GOTO       L_interrupt18
L__interrupt110:
;SmartDigitalClock.c,776 :: 		if(RB0_bit == 0){                         //Falling Event Interrupt
	BTFSC      RB0_bit+0, BitPos(RB0_bit+0)
	GOTO       L_interrupt19
;SmartDigitalClock.c,781 :: 		HighTickCounter = (unsigned int )(TMR1L | (TMR1H << 8));
	MOVF       TMR1H+0, 0
	MOVWF      R0+1
	CLRF       R0+0
	MOVF       R0+0, 0
	IORWF      TMR1L+0, 0
	MOVWF      R2+0
	MOVLW      0
	IORWF      R0+1, 0
	MOVWF      R2+1
	MOVF       R2+0, 0
	MOVWF      _HighTickCounter+0
	MOVF       R2+1, 0
	MOVWF      _HighTickCounter+1
;SmartDigitalClock.c,782 :: 		TMR1L = 0;
	CLRF       TMR1L+0
;SmartDigitalClock.c,783 :: 		TMR1H = 0;
	CLRF       TMR1H+0
;SmartDigitalClock.c,784 :: 		if( (HighTickCounter > 0 )&&(HighTickCounter < 2048) &&(Tmr1_Cnt==0)/*&& (HighTickCounter!=0)*/){
	MOVF       R2+1, 0
	SUBLW      0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt124
	MOVF       R2+0, 0
	SUBLW      0
L__interrupt124:
	BTFSC      STATUS+0, 0
	GOTO       L_interrupt22
	MOVLW      8
	SUBWF      _HighTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt125
	MOVLW      0
	SUBWF      _HighTickCounter+0, 0
L__interrupt125:
	BTFSC      STATUS+0, 0
	GOTO       L_interrupt22
	MOVF       _Tmr1_Cnt+0, 0
	XORLW      0
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt22
L__interrupt109:
;SmartDigitalClock.c,789 :: 		Detect1aPulseFlag =1 ;
	BSF        _Detect1aPulseFlag+0, BitPos(_Detect1aPulseFlag+0)
;SmartDigitalClock.c,790 :: 		}
	GOTO       L_interrupt23
L_interrupt22:
;SmartDigitalClock.c,792 :: 		Detect1aPulseFlag = 0;
	BCF        _Detect1aPulseFlag+0, BitPos(_Detect1aPulseFlag+0)
;SmartDigitalClock.c,793 :: 		Tmr1_Cnt =0;
	CLRF       _Tmr1_Cnt+0
;SmartDigitalClock.c,795 :: 		}
L_interrupt23:
;SmartDigitalClock.c,796 :: 		INTEDG_bit = 1;                           // Set rising trigged
	BSF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,797 :: 		}
	GOTO       L_interrupt24
L_interrupt19:
;SmartDigitalClock.c,805 :: 		LowTickCounter = (TMR1L | (TMR1H << 8)) ;          //Get value of timer1 register
	MOVF       TMR1H+0, 0
	MOVWF      R0+1
	CLRF       R0+0
	MOVF       R0+0, 0
	IORWF      TMR1L+0, 0
	MOVWF      R6+0
	MOVLW      0
	IORWF      R0+1, 0
	MOVWF      R6+1
	MOVF       R6+0, 0
	MOVWF      _LowTickCounter+0
	MOVF       R6+1, 0
	MOVWF      _LowTickCounter+1
;SmartDigitalClock.c,806 :: 		TMR1L = 0;
	CLRF       TMR1L+0
;SmartDigitalClock.c,807 :: 		TMR1H = 0;
	CLRF       TMR1H+0
;SmartDigitalClock.c,809 :: 		TempFiveLow = HighTickCounter <<5;
	MOVLW      5
	MOVWF      R0+0
	MOVF       _HighTickCounter+0, 0
	MOVWF      R4+0
	MOVF       _HighTickCounter+1, 0
	MOVWF      R4+1
	MOVF       R0+0, 0
L__interrupt126:
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt127
	RLF        R4+0, 1
	RLF        R4+1, 1
	BCF        R4+0, 0
	ADDLW      255
	GOTO       L__interrupt126
L__interrupt127:
	MOVF       R4+0, 0
	MOVWF      _TempFiveLow+0
	MOVF       R4+1, 0
	MOVWF      _TempFiveLow+1
;SmartDigitalClock.c,810 :: 		TempOneLow  = HighTickCounter <<3;              //bad remote, TempOneLow is higher.
	MOVF       _HighTickCounter+0, 0
	MOVWF      R0+0
	MOVF       _HighTickCounter+1, 0
	MOVWF      R0+1
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	MOVF       R0+1, 0
	MOVWF      _TempOneLow+1
;SmartDigitalClock.c,811 :: 		if((LowTickCounter >= ((TempFiveLow)-(TempOneLow))) &&
	MOVF       R0+0, 0
	SUBWF      R4+0, 0
	MOVWF      R2+0
	MOVF       R0+1, 0
	BTFSS      STATUS+0, 0
	ADDLW      1
	SUBWF      R4+1, 0
	MOVWF      R2+1
;SmartDigitalClock.c,812 :: 		(LowTickCounter <=  (TempFiveLow)+ (TempOneLow)) &&
	MOVF       R2+1, 0
	SUBWF      R6+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt128
	MOVF       R2+0, 0
	SUBWF      R6+0, 0
L__interrupt128:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt27
	MOVF       _TempOneLow+0, 0
	ADDWF      _TempFiveLow+0, 0
	MOVWF      R1+0
	MOVF       _TempFiveLow+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      _TempOneLow+1, 0
	MOVWF      R1+1
	MOVF       _LowTickCounter+1, 0
	SUBWF      R1+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt129
	MOVF       _LowTickCounter+0, 0
	SUBWF      R1+0, 0
L__interrupt129:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt27
;SmartDigitalClock.c,813 :: 		(Detect1aPulseFlag) && (Tmr1_Cnt ==0) && (LowTickCounter!=0)){
	BTFSS      _Detect1aPulseFlag+0, BitPos(_Detect1aPulseFlag+0)
	GOTO       L_interrupt27
	MOVF       _Tmr1_Cnt+0, 0
	XORLW      0
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt27
	MOVLW      0
	XORWF      _LowTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt130
	MOVLW      0
	XORWF      _LowTickCounter+0, 0
L__interrupt130:
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt27
L__interrupt108:
;SmartDigitalClock.c,819 :: 		if(State == RFRemoteDecode_Detect_Min_High_Pulse){
	MOVF       _State+0, 0
	XORLW      1
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt28
;SmartDigitalClock.c,820 :: 		DetectSyncBit = 1;
	BSF        _DetectSyncBit+0, BitPos(_DetectSyncBit+0)
;SmartDigitalClock.c,822 :: 		if(SyncBitCouter <=2){
	MOVF       _SyncBitCouter+0, 0
	SUBLW      2
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt29
;SmartDigitalClock.c,823 :: 		*(HTC + SyncBitCouter) = HighTickCounter;
	MOVF       _SyncBitCouter+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _HTC+0
	MOVWF      FSR
	MOVF       _HighTickCounter+0, 0
	MOVWF      INDF+0
	MOVF       _HighTickCounter+1, 0
	INCF       FSR, 1
	MOVWF      INDF+0
;SmartDigitalClock.c,824 :: 		}
L_interrupt29:
;SmartDigitalClock.c,825 :: 		SyncBitCouter++;
	INCF       _SyncBitCouter+0, 1
;SmartDigitalClock.c,828 :: 		}
L_interrupt28:
;SmartDigitalClock.c,829 :: 		if(State == RFRemoteDecode_Detect_Sync_Bit){
	MOVF       _State+0, 0
	XORLW      0
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt30
;SmartDigitalClock.c,830 :: 		SyncBitCouter1 = 1;
	BSF        _SyncBitCouter1+0, BitPos(_SyncBitCouter1+0)
;SmartDigitalClock.c,833 :: 		}
L_interrupt30:
;SmartDigitalClock.c,834 :: 		}
	GOTO       L_interrupt31
L_interrupt27:
;SmartDigitalClock.c,836 :: 		LowTickCounter = 0;
	CLRF       _LowTickCounter+0
	CLRF       _LowTickCounter+1
;SmartDigitalClock.c,837 :: 		HighTickCounter = 0;
	CLRF       _HighTickCounter+0
	CLRF       _HighTickCounter+1
;SmartDigitalClock.c,839 :: 		}
L_interrupt31:
;SmartDigitalClock.c,841 :: 		Detect1aPulseFlag = 0;             // Trap Cumulative Error
	BCF        _Detect1aPulseFlag+0, BitPos(_Detect1aPulseFlag+0)
;SmartDigitalClock.c,842 :: 		Tmr1_Cnt = 0;             //Clear for starting new sension
	CLRF       _Tmr1_Cnt+0
;SmartDigitalClock.c,843 :: 		INTEDG_bit = 0;                          // Set Falling Trigged
	BCF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,845 :: 		}
L_interrupt24:
;SmartDigitalClock.c,847 :: 		}
L_interrupt18:
;SmartDigitalClock.c,852 :: 		if(State == RFRemoteDecode_Detect_AddrnDat)    //70us *24 = 1680us
	MOVF       _State+0, 0
	XORLW      2
	BTFSS      STATUS+0, 2
	GOTO       L_interrupt32
;SmartDigitalClock.c,856 :: 		if(RB0_bit == 0){                         //Falling Event Interrupt
	BTFSC      RB0_bit+0, BitPos(RB0_bit+0)
	GOTO       L_interrupt33
;SmartDigitalClock.c,857 :: 		HighTickCounter = (unsigned int )(TMR1L | (TMR1H << 8));
	MOVF       TMR1H+0, 0
	MOVWF      R0+1
	CLRF       R0+0
	MOVF       R0+0, 0
	IORWF      TMR1L+0, 0
	MOVWF      _HighTickCounter+0
	MOVLW      0
	IORWF      R0+1, 0
	MOVWF      _HighTickCounter+1
;SmartDigitalClock.c,858 :: 		TMR1L = 0;
	CLRF       TMR1L+0
;SmartDigitalClock.c,859 :: 		TMR1H = 0;
	CLRF       TMR1H+0
;SmartDigitalClock.c,860 :: 		INTEDG_bit = 1;                           // Set rising trigged
	BSF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,862 :: 		}
	GOTO       L_interrupt34
L_interrupt33:
;SmartDigitalClock.c,866 :: 		LowTickCounter = (TMR1L | (TMR1H << 8)) ;          //Get value of timer1 register  //6us
	MOVF       TMR1H+0, 0
	MOVWF      R0+1
	CLRF       R0+0
	MOVF       R0+0, 0
	IORWF      TMR1L+0, 0
	MOVWF      _LowTickCounter+0
	MOVLW      0
	IORWF      R0+1, 0
	MOVWF      _LowTickCounter+1
;SmartDigitalClock.c,867 :: 		TMR1L = 0;
	CLRF       TMR1L+0
;SmartDigitalClock.c,868 :: 		TMR1H = 0;
	CLRF       TMR1H+0
;SmartDigitalClock.c,870 :: 		( HighTickCounter <= TIME_1a_HIGH    )  &&
	MOVF       _TIME_1a_LOW+1, 0
	SUBWF      _HighTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt131
	MOVF       _TIME_1a_LOW+0, 0
	SUBWF      _HighTickCounter+0, 0
L__interrupt131:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt37
	MOVF       _HighTickCounter+1, 0
	SUBWF      _TIME_1a_HIGH+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt132
	MOVF       _HighTickCounter+0, 0
	SUBWF      _TIME_1a_HIGH+0, 0
L__interrupt132:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt37
;SmartDigitalClock.c,871 :: 		( TIME_3a_LOW     <= LowTickCounter  )  &&
	MOVF       _TIME_3a_LOW+1, 0
	SUBWF      _LowTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt133
	MOVF       _TIME_3a_LOW+0, 0
	SUBWF      _LowTickCounter+0, 0
L__interrupt133:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt37
;SmartDigitalClock.c,872 :: 		( LowTickCounter  <= TIME_3a_HIGH    )  ){
	MOVF       _LowTickCounter+1, 0
	SUBWF      _TIME_3a_HIGH+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt134
	MOVF       _LowTickCounter+0, 0
	SUBWF      _TIME_3a_HIGH+0, 0
L__interrupt134:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt37
L__interrupt107:
;SmartDigitalClock.c,877 :: 		RFReceiverBuffer[RFReceiverBufferCounter >> 3] |= 0b0001 << (RFReceiverBufferCounter & 0x07);
	MOVF       _RFReceiverBufferCounter+0, 0
	MOVWF      R0+0
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	MOVF       R0+0, 0
	ADDLW      _RFReceiverBuffer+0
	MOVWF      R2+0
	MOVLW      7
	ANDWF      _RFReceiverBufferCounter+0, 0
	MOVWF      R0+0
	MOVF       R0+0, 0
	MOVWF      R1+0
	MOVLW      1
	MOVWF      R0+0
	MOVF       R1+0, 0
L__interrupt135:
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt136
	RLF        R0+0, 1
	BCF        R0+0, 0
	ADDLW      255
	GOTO       L__interrupt135
L__interrupt136:
	MOVF       R2+0, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	IORWF      R0+0, 1
	MOVF       R2+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;SmartDigitalClock.c,878 :: 		RFReceiverBufferCounter += 4;
	MOVLW      4
	ADDWF      _RFReceiverBufferCounter+0, 1
;SmartDigitalClock.c,879 :: 		HighTickCounter = 0;
	CLRF       _HighTickCounter+0
	CLRF       _HighTickCounter+1
;SmartDigitalClock.c,880 :: 		LowTickCounter = 0;
	CLRF       _LowTickCounter+0
	CLRF       _LowTickCounter+1
;SmartDigitalClock.c,881 :: 		}
	GOTO       L_interrupt38
L_interrupt37:
;SmartDigitalClock.c,883 :: 		( HighTickCounter <= TIME_3a_HIGH    ) &&
	MOVF       _TIME_3a_LOW+1, 0
	SUBWF      _HighTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt137
	MOVF       _TIME_3a_LOW+0, 0
	SUBWF      _HighTickCounter+0, 0
L__interrupt137:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt41
	MOVF       _HighTickCounter+1, 0
	SUBWF      _TIME_3a_HIGH+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt138
	MOVF       _HighTickCounter+0, 0
	SUBWF      _TIME_3a_HIGH+0, 0
L__interrupt138:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt41
;SmartDigitalClock.c,884 :: 		( TIME_1a_LOW     <= LowTickCounter  ) &&
	MOVF       _TIME_1a_LOW+1, 0
	SUBWF      _LowTickCounter+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt139
	MOVF       _TIME_1a_LOW+0, 0
	SUBWF      _LowTickCounter+0, 0
L__interrupt139:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt41
;SmartDigitalClock.c,885 :: 		( LowTickCounter  <= TIME_1a_HIGH)   ) {
	MOVF       _LowTickCounter+1, 0
	SUBWF      _TIME_1a_HIGH+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__interrupt140
	MOVF       _LowTickCounter+0, 0
	SUBWF      _TIME_1a_HIGH+0, 0
L__interrupt140:
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt41
L__interrupt106:
;SmartDigitalClock.c,888 :: 		RFReceiverBuffer[RFReceiverBufferCounter >> 3] |= 0b0111 << (RFReceiverBufferCounter & 0x07);
	MOVF       _RFReceiverBufferCounter+0, 0
	MOVWF      R0+0
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	MOVF       R0+0, 0
	ADDLW      _RFReceiverBuffer+0
	MOVWF      R2+0
	MOVLW      7
	ANDWF      _RFReceiverBufferCounter+0, 0
	MOVWF      R0+0
	MOVF       R0+0, 0
	MOVWF      R1+0
	MOVLW      7
	MOVWF      R0+0
	MOVF       R1+0, 0
L__interrupt141:
	BTFSC      STATUS+0, 2
	GOTO       L__interrupt142
	RLF        R0+0, 1
	BCF        R0+0, 0
	ADDLW      255
	GOTO       L__interrupt141
L__interrupt142:
	MOVF       R2+0, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	IORWF      R0+0, 1
	MOVF       R2+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
;SmartDigitalClock.c,889 :: 		RFReceiverBufferCounter += 4;
	MOVLW      4
	ADDWF      _RFReceiverBufferCounter+0, 1
;SmartDigitalClock.c,890 :: 		HighTickCounter = 0;
	CLRF       _HighTickCounter+0
	CLRF       _HighTickCounter+1
;SmartDigitalClock.c,891 :: 		LowTickCounter = 0;
	CLRF       _LowTickCounter+0
	CLRF       _LowTickCounter+1
;SmartDigitalClock.c,892 :: 		}
	GOTO       L_interrupt42
L_interrupt41:
;SmartDigitalClock.c,895 :: 		HighTickCounter = 0;
	CLRF       _HighTickCounter+0
	CLRF       _HighTickCounter+1
;SmartDigitalClock.c,896 :: 		LowTickCounter = 0;
	CLRF       _LowTickCounter+0
	CLRF       _LowTickCounter+1
;SmartDigitalClock.c,897 :: 		RFReceiverBufferCounter = 0;
	CLRF       _RFReceiverBufferCounter+0
;SmartDigitalClock.c,898 :: 		Tmr1_Cnt = 0;
	CLRF       _Tmr1_Cnt+0
;SmartDigitalClock.c,899 :: 		State = RFRemoteDecode_Detect_Sync_Bit ;
	CLRF       _State+0
;SmartDigitalClock.c,900 :: 		TMR0IE_bit = 1;
	BSF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,904 :: 		}
L_interrupt42:
L_interrupt38:
;SmartDigitalClock.c,905 :: 		RFReceiverBuffer[(RFReceiverBufferCounter >> 3) + 1] = 0x00 ;
	MOVF       _RFReceiverBufferCounter+0, 0
	MOVWF      R0+0
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	RRF        R0+0, 1
	BCF        R0+0, 7
	MOVLW      1
	ADDWF      R0+0, 1
	CLRF       R0+1
	BTFSC      STATUS+0, 0
	INCF       R0+1, 1
	MOVF       R0+0, 0
	ADDLW      _RFReceiverBuffer+0
	MOVWF      FSR
	CLRF       INDF+0
;SmartDigitalClock.c,906 :: 		INTEDG_bit = 0;                 //Set falling trigged interrupt
	BCF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,907 :: 		}
L_interrupt34:
;SmartDigitalClock.c,908 :: 		if(RFReceiverBufferCounter >= 96){
	MOVLW      96
	SUBWF      _RFReceiverBufferCounter+0, 0
	BTFSS      STATUS+0, 0
	GOTO       L_interrupt43
;SmartDigitalClock.c,909 :: 		CntFrame = 1;
	MOVLW      1
	MOVWF      _CntFrame+0
;SmartDigitalClock.c,911 :: 		}
L_interrupt43:
;SmartDigitalClock.c,915 :: 		}
L_interrupt32:
;SmartDigitalClock.c,916 :: 		INTF_bit = 0;
	BCF        INTF_bit+0, BitPos(INTF_bit+0)
;SmartDigitalClock.c,917 :: 		}
L_interrupt15:
;SmartDigitalClock.c,918 :: 		}
L_end_interrupt:
L__interrupt117:
	MOVF       ___savePCLATH+0, 0
	MOVWF      PCLATH+0
	SWAPF      ___saveSTATUS+0, 0
	MOVWF      STATUS+0
	SWAPF      R15+0, 1
	SWAPF      R15+0, 0
	RETFIE
; end of _interrupt

_main:

;SmartDigitalClock.c,922 :: 		void main(void){
;SmartDigitalClock.c,924 :: 		UART1_Init(9600);
	MOVLW      51
	MOVWF      SPBRG+0
	BSF        TXSTA+0, 2
	CALL       _UART1_Init+0
;SmartDigitalClock.c,925 :: 		Delay_ms(100);                  // Wait for UART module to stabilize
	MOVLW      2
	MOVWF      R11+0
	MOVLW      4
	MOVWF      R12+0
	MOVLW      186
	MOVWF      R13+0
L_main44:
	DECFSZ     R13+0, 1
	GOTO       L_main44
	DECFSZ     R12+0, 1
	GOTO       L_main44
	DECFSZ     R11+0, 1
	GOTO       L_main44
	NOP
;SmartDigitalClock.c,926 :: 		UART1_Write_Text("Start");
	MOVLW      ?lstr1_SmartDigitalClock+0
	MOVWF      FARG_UART1_Write_Text_uart_text+0
	CALL       _UART1_Write_Text+0
;SmartDigitalClock.c,928 :: 		Tmr1_Cnt          = 0;
	CLRF       _Tmr1_Cnt+0
;SmartDigitalClock.c,929 :: 		Tmr0_Cnt          = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,930 :: 		Tmr0_Cnt1         = 0;
	CLRF       _Tmr0_Cnt1+0
;SmartDigitalClock.c,931 :: 		HighTickCounter   = 0;                         // High level of Signal
	CLRF       _HighTickCounter+0
	CLRF       _HighTickCounter+1
;SmartDigitalClock.c,932 :: 		LowTickCounter    = 0;                           //Low level of Signal
	CLRF       _LowTickCounter+0
	CLRF       _LowTickCounter+1
;SmartDigitalClock.c,933 :: 		CntFrame          = 0;                             // Count Good Frame
	CLRF       _CntFrame+0
;SmartDigitalClock.c,934 :: 		SyncBitCouter     = 0;
	CLRF       _SyncBitCouter+0
;SmartDigitalClock.c,936 :: 		TempFiveLow = 0;
	CLRF       _TempFiveLow+0
	CLRF       _TempFiveLow+1
;SmartDigitalClock.c,937 :: 		TempOneLow = 0;
	CLRF       _TempOneLow+0
	CLRF       _TempOneLow+1
;SmartDigitalClock.c,939 :: 		Detect31aPulseFlag  = 0 ;
	BCF        _Detect31aPulseFlag+0, BitPos(_Detect31aPulseFlag+0)
;SmartDigitalClock.c,940 :: 		Detect1aPulseFlag   = 0 ;
	BCF        _Detect1aPulseFlag+0, BitPos(_Detect1aPulseFlag+0)
;SmartDigitalClock.c,941 :: 		DetectSyncBit       = 0 ;
	BCF        _DetectSyncBit+0, BitPos(_DetectSyncBit+0)
;SmartDigitalClock.c,942 :: 		EndOfTimingWindows  = 0 ;
	BCF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,943 :: 		SyncBitCouter1      = 0 ;
	BCF        _SyncBitCouter1+0, BitPos(_SyncBitCouter1+0)
;SmartDigitalClock.c,944 :: 		j                   = 0 ;
	BCF        _j+0, BitPos(_j+0)
;SmartDigitalClock.c,945 :: 		k                   = 0 ;
	BCF        _k+0, BitPos(_k+0)
;SmartDigitalClock.c,947 :: 		TIME_1a_HIGH        = 0;
	CLRF       _TIME_1a_HIGH+0
	CLRF       _TIME_1a_HIGH+1
;SmartDigitalClock.c,948 :: 		TIME_1a_LOW         = 0;
	CLRF       _TIME_1a_LOW+0
	CLRF       _TIME_1a_LOW+1
;SmartDigitalClock.c,949 :: 		TIME_3a_HIGH        = 0;
	CLRF       _TIME_3a_HIGH+0
	CLRF       _TIME_3a_HIGH+1
;SmartDigitalClock.c,950 :: 		TIME_3a_LOW         = 0;
	CLRF       _TIME_3a_LOW+0
	CLRF       _TIME_3a_LOW+1
;SmartDigitalClock.c,951 :: 		TIME_31a_HIGH       = 0;
	CLRF       _TIME_31a_HIGH+0
	CLRF       _TIME_31a_HIGH+1
;SmartDigitalClock.c,952 :: 		TIME_31a_LOW        = 0;
	CLRF       _TIME_31a_LOW+0
	CLRF       _TIME_31a_LOW+1
;SmartDigitalClock.c,954 :: 		LearnCodeEvent      = 0;
	BCF        _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
;SmartDigitalClock.c,955 :: 		LearnMode           = 5 ;// (singleonoff = 0, AllON =1, AllOFF =2, Sleep=3, Clearance =4)
	MOVLW      5
	MOVWF      _LearnMode+0
;SmartDigitalClock.c,956 :: 		Cnt                 = 0; // Number of codes which equals Alpha
	CLRF       _Cnt+0
;SmartDigitalClock.c,961 :: 		TRISC = 0b00000000;
	CLRF       TRISC+0
;SmartDigitalClock.c,962 :: 		PORTC = 0x00;
	CLRF       PORTC+0
;SmartDigitalClock.c,970 :: 		for( RFReceiverBufferCounter = 0; RFReceiverBufferCounter < 12 ;RFReceiverBufferCounter ++){
	CLRF       _RFReceiverBufferCounter+0
L_main45:
	MOVLW      12
	SUBWF      _RFReceiverBufferCounter+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_main46
;SmartDigitalClock.c,971 :: 		RFReceiverBuffer [RFReceiverBufferCounter] = 0x00;
	MOVF       _RFReceiverBufferCounter+0, 0
	ADDLW      _RFReceiverBuffer+0
	MOVWF      FSR
	CLRF       INDF+0
;SmartDigitalClock.c,970 :: 		for( RFReceiverBufferCounter = 0; RFReceiverBufferCounter < 12 ;RFReceiverBufferCounter ++){
	INCF       _RFReceiverBufferCounter+0, 1
;SmartDigitalClock.c,972 :: 		}
	GOTO       L_main45
L_main46:
;SmartDigitalClock.c,973 :: 		RFReceiverBufferCounter = 0;
	CLRF       _RFReceiverBufferCounter+0
;SmartDigitalClock.c,979 :: 		EEPROM_Codes_Cnt = EEPROM_Read(0x00) ;
	CLRF       FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       R0+0, 0
	MOVWF      _EEPROM_Codes_Cnt+0
;SmartDigitalClock.c,980 :: 		if(EEPROM_Codes_Cnt == 0xFF){         // Nothing
	MOVF       R0+0, 0
	XORLW      255
	BTFSS      STATUS+0, 2
	GOTO       L_main48
;SmartDigitalClock.c,981 :: 		EEPROM_Codes_Cnt=0;
	CLRF       _EEPROM_Codes_Cnt+0
;SmartDigitalClock.c,983 :: 		State   = /*RFRemoteDecode_Detect_Min_High_Pulse*/RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,984 :: 		}
	GOTO       L_main49
L_main48:
;SmartDigitalClock.c,986 :: 		State   = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,988 :: 		for(i = 0; i<= EEPROM_Codes_Cnt; i++){
	CLRF       _i+0
L_main50:
	MOVF       _i+0, 0
	SUBWF      _EEPROM_Codes_Cnt+0, 0
	BTFSS      STATUS+0, 0
	GOTO       L_main51
;SmartDigitalClock.c,990 :: 		TempHTC[i] = EEPROM_Read(0x01 + ((EEPROM_Codes_Cnt -1 )<<3));
	MOVF       _i+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _TempHTC+0
	MOVWF      FLOC__main+0
	DECF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R2+0
	MOVF       R2+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	BCF        R0+0, 0
	INCF       R0+0, 0
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       FLOC__main+0, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
	INCF       FSR, 1
	CLRF       INDF+0
;SmartDigitalClock.c,991 :: 		TempHTC[i] = TempHTC[i] + (EEPROM_Read(0x02 + ((EEPROM_Codes_Cnt-1)<<3))<<8);
	MOVF       _i+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _TempHTC+0
	MOVWF      FLOC__main+2
	MOVF       FLOC__main+2, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	MOVWF      FLOC__main+0
	INCF       FSR, 1
	MOVF       INDF+0, 0
	MOVWF      FLOC__main+1
	DECF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R2+0
	MOVF       R2+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	BCF        R0+0, 0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      2
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       R0+0, 0
	MOVWF      R2+1
	CLRF       R2+0
	MOVF       R2+0, 0
	ADDWF      FLOC__main+0, 0
	MOVWF      R0+0
	MOVF       FLOC__main+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R2+1, 0
	MOVWF      R0+1
	MOVF       FLOC__main+2, 0
	MOVWF      FSR
	MOVF       R0+0, 0
	MOVWF      INDF+0
	MOVF       R0+1, 0
	INCF       FSR, 1
	MOVWF      INDF+0
;SmartDigitalClock.c,988 :: 		for(i = 0; i<= EEPROM_Codes_Cnt; i++){
	INCF       _i+0, 1
;SmartDigitalClock.c,993 :: 		}
	GOTO       L_main50
L_main51:
;SmartDigitalClock.c,995 :: 		}
L_main49:
;SmartDigitalClock.c,1043 :: 		TRISB      =0b00000101; // RB0 and RB2 are Digital input
	MOVLW      5
	MOVWF      TRISB+0
;SmartDigitalClock.c,1044 :: 		OPTION_REG =0b01000000 ;
	MOVLW      64
	MOVWF      OPTION_REG+0
;SmartDigitalClock.c,1047 :: 		INTE_bit = 0;           // Disable external interrupt on RB0
	BCF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1048 :: 		INTF_bit = 0;           // Clear Flag external interrupt
	BCF        INTF_bit+0, BitPos(INTF_bit+0)
;SmartDigitalClock.c,1095 :: 		PS2_bit = 1;
	BSF        PS2_bit+0, BitPos(PS2_bit+0)
;SmartDigitalClock.c,1096 :: 		PS1_bit = 1;
	BSF        PS1_bit+0, BitPos(PS1_bit+0)
;SmartDigitalClock.c,1097 :: 		PS0_bit = 1;
	BSF        PS0_bit+0, BitPos(PS0_bit+0)
;SmartDigitalClock.c,1098 :: 		TMR0    = 0x00;
	CLRF       TMR0+0
;SmartDigitalClock.c,1099 :: 		TMR0IE_bit = 0;
	BCF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,1100 :: 		TMR0IF_bit = 0;
	BCF        TMR0IF_bit+0, BitPos(TMR0IF_bit+0)
;SmartDigitalClock.c,1104 :: 		INTCON = 0b11000000;         //Enable Global interrupt(GIE) and Peripheral Interrupt (PIE)
	MOVLW      192
	MOVWF      INTCON+0
;SmartDigitalClock.c,1105 :: 		T1CON   = 1;                 // Enable Timer1-16 bit
	MOVLW      1
	MOVWF      T1CON+0
;SmartDigitalClock.c,1106 :: 		PIR1.TMR1IF = 0;             // Clear Timer1 interrupt flag
	BCF        PIR1+0, 0
;SmartDigitalClock.c,1107 :: 		PIE1.TMR1IE = 1;             // Enable Timer1 interrupt
	BSF        PIE1+0, 0
;SmartDigitalClock.c,1108 :: 		T1CKPS1_bit = 0;             // Select prescaler for Timer1 is 1:2
	BCF        T1CKPS1_bit+0, BitPos(T1CKPS1_bit+0)
;SmartDigitalClock.c,1109 :: 		T1CkPS0_bit = 1;
	BSF        T1CKPS0_bit+0, BitPos(T1CKPS0_bit+0)
;SmartDigitalClock.c,1111 :: 		TMR1H       =0x00;
	CLRF       TMR1H+0
;SmartDigitalClock.c,1112 :: 		TMR1L       =0x00;
	CLRF       TMR1L+0
;SmartDigitalClock.c,1118 :: 		RC0_bit = 1;// starting
	BSF        RC0_bit+0, BitPos(RC0_bit+0)
;SmartDigitalClock.c,1119 :: 		TMR0IE_bit = 1;
	BSF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,1120 :: 		INTE_bit = 1; // Enable External Interrupt
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1121 :: 		INTEDG_bit = 1;// Falling
	BSF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,1123 :: 		while(1){
L_main53:
;SmartDigitalClock.c,1125 :: 		switch ( State){
	GOTO       L_main55
;SmartDigitalClock.c,1126 :: 		case (RFRemoteDecode_Detect_Sync_Bit) :        //case 0
L_main57:
;SmartDigitalClock.c,1127 :: 		if( SyncBitCouter1 && ((EEPROM_Codes_Cnt != 0)||(LearnCodeEvent == 1) ) ){
	BTFSS      _SyncBitCouter1+0, BitPos(_SyncBitCouter1+0)
	GOTO       L_main62
	MOVF       _EEPROM_Codes_Cnt+0, 0
	XORLW      0
	BTFSS      STATUS+0, 2
	GOTO       L__main115
	BTFSC      _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
	GOTO       L__main115
	GOTO       L_main62
L__main115:
L__main114:
;SmartDigitalClock.c,1129 :: 		SyncBitCouter1 =0;
	BCF        _SyncBitCouter1+0, BitPos(_SyncBitCouter1+0)
;SmartDigitalClock.c,1131 :: 		RC0_bit =~ RC0_bit;
	MOVLW
	XORWF      RC0_bit+0, 1
;SmartDigitalClock.c,1135 :: 		if(LearnCodeEvent ==0 ){
	BTFSC      _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
	GOTO       L_main63
;SmartDigitalClock.c,1137 :: 		TempHTC1 = HighTickCounter + (HighTickCounter >>3);//50us
	MOVF       _HighTickCounter+0, 0
	MOVWF      R0+0
	MOVF       _HighTickCounter+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       R0+0, 0
	ADDWF      _HighTickCounter+0, 0
	MOVWF      R6+0
	MOVF       _HighTickCounter+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R0+1, 0
	MOVWF      R6+1
	MOVF       R6+0, 0
	MOVWF      _TempHTC1+0
	MOVF       R6+1, 0
	MOVWF      _TempHTC1+1
;SmartDigitalClock.c,1139 :: 		TempOneLow =  TempHTC1 >> 2;
	MOVF       R6+0, 0
	MOVWF      R0+0
	MOVF       R6+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	MOVF       R0+1, 0
	MOVWF      _TempOneLow+1
;SmartDigitalClock.c,1140 :: 		TIME_1a_LOW  = TempHTC1 - (TempOneLow); // 0.75
	MOVF       R0+0, 0
	SUBWF      R6+0, 0
	MOVWF      R4+0
	MOVF       R0+1, 0
	BTFSS      STATUS+0, 0
	ADDLW      1
	SUBWF      R6+1, 0
	MOVWF      R4+1
	MOVF       R4+0, 0
	MOVWF      _TIME_1a_LOW+0
	MOVF       R4+1, 0
	MOVWF      _TIME_1a_LOW+1
;SmartDigitalClock.c,1141 :: 		TIME_1a_HIGH = TempHTC1 + (TempOneLow); // 1.25
	MOVF       R0+0, 0
	ADDWF      R6+0, 0
	MOVWF      R2+0
	MOVF       R6+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R0+1, 0
	MOVWF      R2+1
	MOVF       R2+0, 0
	MOVWF      _TIME_1a_HIGH+0
	MOVF       R2+1, 0
	MOVWF      _TIME_1a_HIGH+1
;SmartDigitalClock.c,1143 :: 		TIME_3a_LOW  = (TIME_1a_LOW <<2) - TIME_1a_LOW;
	MOVF       R4+0, 0
	MOVWF      _TIME_3a_LOW+0
	MOVF       R4+1, 0
	MOVWF      _TIME_3a_LOW+1
	RLF        _TIME_3a_LOW+0, 1
	RLF        _TIME_3a_LOW+1, 1
	BCF        _TIME_3a_LOW+0, 0
	RLF        _TIME_3a_LOW+0, 1
	RLF        _TIME_3a_LOW+1, 1
	BCF        _TIME_3a_LOW+0, 0
	MOVF       R4+0, 0
	SUBWF      _TIME_3a_LOW+0, 1
	BTFSS      STATUS+0, 0
	DECF       _TIME_3a_LOW+1, 1
	MOVF       R4+1, 0
	SUBWF      _TIME_3a_LOW+1, 1
;SmartDigitalClock.c,1144 :: 		TIME_3a_HIGH = (TIME_1a_HIGH <<2) - TIME_1a_HIGH;    //50us
	MOVF       R2+0, 0
	MOVWF      _TIME_3a_HIGH+0
	MOVF       R2+1, 0
	MOVWF      _TIME_3a_HIGH+1
	RLF        _TIME_3a_HIGH+0, 1
	RLF        _TIME_3a_HIGH+1, 1
	BCF        _TIME_3a_HIGH+0, 0
	RLF        _TIME_3a_HIGH+0, 1
	RLF        _TIME_3a_HIGH+1, 1
	BCF        _TIME_3a_HIGH+0, 0
	MOVF       R2+0, 0
	SUBWF      _TIME_3a_HIGH+0, 1
	BTFSS      STATUS+0, 0
	DECF       _TIME_3a_HIGH+1, 1
	MOVF       R2+1, 0
	SUBWF      _TIME_3a_HIGH+1, 1
;SmartDigitalClock.c,1147 :: 		}
L_main63:
;SmartDigitalClock.c,1150 :: 		State =RFRemoteDecode_Detect_AddrnDat;
	MOVLW      2
	MOVWF      _State+0
;SmartDigitalClock.c,1153 :: 		}
L_main62:
;SmartDigitalClock.c,1154 :: 		if( Button( &PORTB, 2, 1, PRESS)){  // When Press RB1_pin, active State's 0.
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      2
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_main64
;SmartDigitalClock.c,1157 :: 		RC5_bit =  ~RC5_bit;     // Lamp will be switch ON of OFF
	MOVLW
	XORWF      RC5_bit+0, 1
;SmartDigitalClock.c,1158 :: 		INTE_bit = 0 ;        // Disable external interrupt
	BCF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1159 :: 		TMR0    = 0;    //Clear Timer0 register
	CLRF       TMR0+0
;SmartDigitalClock.c,1160 :: 		TMR0IE_bit  = 1;    // Enable timer0 in terrupt
	BSF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,1161 :: 		Tmr0_Cnt = 0;   // clear overload variable of timer 0
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,1162 :: 		State  =  RFRemoteDecode_Process_Button;
	MOVLW      3
	MOVWF      _State+0
;SmartDigitalClock.c,1163 :: 		}
L_main64:
;SmartDigitalClock.c,1164 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1165 :: 		case (RFRemoteDecode_Detect_Min_High_Pulse) :  //case 1     45us
L_main65:
;SmartDigitalClock.c,1167 :: 		if(DetectSyncBit /*EndOfTimingWindows*/ /*&&((EEPROM_Codes_Cnt != 0)||(LearnCodeEvent == 1) )*/){                // Get HighTickCouter Exactly
	BTFSS      _DetectSyncBit+0, BitPos(_DetectSyncBit+0)
	GOTO       L_main66
;SmartDigitalClock.c,1169 :: 		if(EndOfTimingWindows){
	BTFSS      _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
	GOTO       L_main67
;SmartDigitalClock.c,1172 :: 		if((SyncBitCouter >= 3)  && (abs(HTC[0] - HTC[1]) <=10)&& (abs(HTC[2] - HTC[1]) <=10) /*&& (HighTickCounter > 0) &&(HighTickCounter < 2048)*/ ){    //bug here
	MOVLW      3
	SUBWF      _SyncBitCouter+0, 0
	BTFSS      STATUS+0, 0
	GOTO       L_main70
	MOVF       _HTC+2, 0
	SUBWF      _HTC+0, 0
	MOVWF      FARG_abs_a+0
	MOVF       _HTC+3, 0
	BTFSS      STATUS+0, 0
	ADDLW      1
	SUBWF      _HTC+1, 0
	MOVWF      FARG_abs_a+1
	CALL       _abs+0
	MOVLW      128
	MOVWF      R2+0
	MOVLW      128
	XORWF      R0+1, 0
	SUBWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main144
	MOVF       R0+0, 0
	SUBLW      10
L__main144:
	BTFSS      STATUS+0, 0
	GOTO       L_main70
	MOVF       _HTC+2, 0
	SUBWF      _HTC+4, 0
	MOVWF      FARG_abs_a+0
	MOVF       _HTC+3, 0
	BTFSS      STATUS+0, 0
	ADDLW      1
	SUBWF      _HTC+5, 0
	MOVWF      FARG_abs_a+1
	CALL       _abs+0
	MOVLW      128
	MOVWF      R2+0
	MOVLW      128
	XORWF      R0+1, 0
	SUBWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main145
	MOVF       R0+0, 0
	SUBLW      10
L__main145:
	BTFSS      STATUS+0, 0
	GOTO       L_main70
L__main113:
;SmartDigitalClock.c,1173 :: 		GIE_bit = 0;
	BCF        GIE_bit+0, BitPos(GIE_bit+0)
;SmartDigitalClock.c,1175 :: 		TMR0IE_bit = 0;// Disable tmr0 interrupt
	BCF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,1177 :: 		if( LearnCodeEvent){                           // implement: 4,2ms
	BTFSS      _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
	GOTO       L_main71
;SmartDigitalClock.c,1178 :: 		RC1_bit = 1;
	BSF        RC1_bit+0, BitPos(RC1_bit+0)
;SmartDigitalClock.c,1181 :: 		TempHTC[EEPROM_Codes_Cnt] = HighTickCounter + (HighTickCounter >>3);//65us
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _TempHTC+0
	MOVWF      FSR
	MOVF       _HighTickCounter+0, 0
	MOVWF      R0+0
	MOVF       _HighTickCounter+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       _HighTickCounter+0, 0
	ADDWF      R0+0, 1
	MOVF       _HighTickCounter+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R0+1, 1
	MOVF       R0+0, 0
	MOVWF      INDF+0
	MOVF       R0+1, 0
	INCF       FSR, 1
	MOVWF      INDF+0
;SmartDigitalClock.c,1183 :: 		TIME_1a_LOW  = TempHTC[EEPROM_Codes_Cnt] - (TempHTC[EEPROM_Codes_Cnt] >> 2); // 0.75
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _TempHTC+0
	MOVWF      R8+0
	MOVF       R8+0, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	MOVWF      R3+0
	INCF       FSR, 1
	MOVF       INDF+0, 0
	MOVWF      R3+1
	MOVF       R3+0, 0
	MOVWF      R0+0
	MOVF       R3+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       R0+0, 0
	SUBWF      R3+0, 0
	MOVWF      R6+0
	MOVF       R0+1, 0
	BTFSS      STATUS+0, 0
	ADDLW      1
	SUBWF      R3+1, 0
	MOVWF      R6+1
	MOVF       R6+0, 0
	MOVWF      _TIME_1a_LOW+0
	MOVF       R6+1, 0
	MOVWF      _TIME_1a_LOW+1
;SmartDigitalClock.c,1184 :: 		TIME_1a_HIGH = TempHTC[EEPROM_Codes_Cnt] + (TempHTC[EEPROM_Codes_Cnt] >> 2); // 1.25        65us
	MOVF       R8+0, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	MOVWF      R4+0
	INCF       FSR, 1
	MOVF       INDF+0, 0
	MOVWF      R4+1
	MOVF       R4+0, 0
	MOVWF      R0+0
	MOVF       R4+1, 0
	MOVWF      R0+1
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	RRF        R0+1, 1
	RRF        R0+0, 1
	BCF        R0+1, 7
	MOVF       R0+0, 0
	ADDWF      R4+0, 0
	MOVWF      R2+0
	MOVF       R4+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R0+1, 0
	MOVWF      R2+1
	MOVF       R2+0, 0
	MOVWF      _TIME_1a_HIGH+0
	MOVF       R2+1, 0
	MOVWF      _TIME_1a_HIGH+1
;SmartDigitalClock.c,1186 :: 		TIME_3a_LOW  = (TIME_1a_LOW <<2) - TIME_1a_LOW;
	MOVF       R6+0, 0
	MOVWF      _TIME_3a_LOW+0
	MOVF       R6+1, 0
	MOVWF      _TIME_3a_LOW+1
	RLF        _TIME_3a_LOW+0, 1
	RLF        _TIME_3a_LOW+1, 1
	BCF        _TIME_3a_LOW+0, 0
	RLF        _TIME_3a_LOW+0, 1
	RLF        _TIME_3a_LOW+1, 1
	BCF        _TIME_3a_LOW+0, 0
	MOVF       R6+0, 0
	SUBWF      _TIME_3a_LOW+0, 1
	BTFSS      STATUS+0, 0
	DECF       _TIME_3a_LOW+1, 1
	MOVF       R6+1, 0
	SUBWF      _TIME_3a_LOW+1, 1
;SmartDigitalClock.c,1187 :: 		TIME_3a_HIGH = (TIME_1a_HIGH <<2) - TIME_1a_HIGH;
	MOVF       R2+0, 0
	MOVWF      _TIME_3a_HIGH+0
	MOVF       R2+1, 0
	MOVWF      _TIME_3a_HIGH+1
	RLF        _TIME_3a_HIGH+0, 1
	RLF        _TIME_3a_HIGH+1, 1
	BCF        _TIME_3a_HIGH+0, 0
	RLF        _TIME_3a_HIGH+0, 1
	RLF        _TIME_3a_HIGH+1, 1
	BCF        _TIME_3a_HIGH+0, 0
	MOVF       R2+0, 0
	SUBWF      _TIME_3a_HIGH+0, 1
	BTFSS      STATUS+0, 0
	DECF       _TIME_3a_HIGH+1, 1
	MOVF       R2+1, 0
	SUBWF      _TIME_3a_HIGH+1, 1
;SmartDigitalClock.c,1189 :: 		TempCheck =  TempHTC[EEPROM_Codes_Cnt] >> 8 ;  //10us
	MOVF       R8+0, 0
	MOVWF      FSR
	MOVF       INDF+0, 0
	MOVWF      R1+0
	INCF       FSR, 1
	MOVF       INDF+0, 0
	MOVWF      R1+1
	MOVF       R1+1, 0
	MOVWF      R3+0
	CLRF       R3+1
	MOVF       R3+0, 0
	MOVWF      _TempCheck+0
;SmartDigitalClock.c,1191 :: 		TempOneLow = EEPROM_Codes_Cnt +(EEPROM_Codes_Cnt<<3);
	MOVLW      3
	MOVWF      R2+0
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R0+0
	CLRF       R0+1
	MOVF       R2+0, 0
L__main146:
	BTFSC      STATUS+0, 2
	GOTO       L__main147
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	ADDLW      255
	GOTO       L__main146
L__main147:
	MOVF       _EEPROM_Codes_Cnt+0, 0
	ADDWF      R0+0, 1
	BTFSC      STATUS+0, 0
	INCF       R0+1, 1
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	MOVF       R0+1, 0
	MOVWF      _TempOneLow+1
;SmartDigitalClock.c,1192 :: 		EEPROM_Write( (0x02 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )/*(TempHTC[EEPROM_Codes_Cnt] >> 8  )*/ TempCheck));       //4ms  , TempCheck -~4ms
	MOVF       R0+0, 0
	ADDLW      2
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       R3+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1194 :: 		EEPROM_Write( (0x01 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(TempHTC[EEPROM_Codes_Cnt]       )));       //30us
	INCF       _TempOneLow+0, 0
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R0+0
	RLF        R0+0, 1
	BCF        R0+0, 0
	MOVF       R0+0, 0
	ADDLW      _TempHTC+0
	MOVWF      FSR
	MOVF       INDF+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1196 :: 		State = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,1198 :: 		}
L_main71:
;SmartDigitalClock.c,1200 :: 		*(HTC)   = 0;
	CLRF       _HTC+0
	CLRF       _HTC+1
;SmartDigitalClock.c,1201 :: 		*(HTC+1) = 0;
	CLRF       _HTC+2
	CLRF       _HTC+3
;SmartDigitalClock.c,1202 :: 		*(HTC+2) = 0;
	CLRF       _HTC+4
	CLRF       _HTC+5
;SmartDigitalClock.c,1203 :: 		GIE_bit = 1;
	BSF        GIE_bit+0, BitPos(GIE_bit+0)
;SmartDigitalClock.c,1204 :: 		}
L_main70:
;SmartDigitalClock.c,1205 :: 		SyncBitCouter = 0;
	CLRF       _SyncBitCouter+0
;SmartDigitalClock.c,1207 :: 		}
L_main67:
;SmartDigitalClock.c,1208 :: 		EndOfTimingWindows = 0;
	BCF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,1209 :: 		}
L_main66:
;SmartDigitalClock.c,1210 :: 		DetectSyncBit = 0;
	BCF        _DetectSyncBit+0, BitPos(_DetectSyncBit+0)
;SmartDigitalClock.c,1212 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1213 :: 		case (RFRemoteDecode_Detect_AddrnDat) :        //case 2
L_main72:
;SmartDigitalClock.c,1215 :: 		EndOfTimingWindows = 0;
	BCF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,1216 :: 		SyncBitCouter = 0;
	CLRF       _SyncBitCouter+0
;SmartDigitalClock.c,1217 :: 		if(CntFrame){                 //3200us
	MOVF       _CntFrame+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_main73
;SmartDigitalClock.c,1220 :: 		INTE_bit = 0;
	BCF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1221 :: 		PIE1.TMR1IE = 0;
	BCF        PIE1+0, 0
;SmartDigitalClock.c,1226 :: 		Delay_ms(2);
	MOVLW      6
	MOVWF      R12+0
	MOVLW      48
	MOVWF      R13+0
L_main74:
	DECFSZ     R13+0, 1
	GOTO       L_main74
	DECFSZ     R12+0, 1
	GOTO       L_main74
	NOP
;SmartDigitalClock.c,1228 :: 		RFRemoteAddrCode= RFRemoteDecode_GetAddr(RFReceiverBuffer);
	MOVLW      _RFReceiverBuffer+0
	MOVWF      FARG_RFRemoteDecode_GetAddr_RFRemoteBuff+0
	CALL       _RFRemoteDecode_GetAddr+0
	MOVF       R0+0, 0
	MOVWF      _RFRemoteAddrCode+0
	MOVF       R0+1, 0
	MOVWF      _RFRemoteAddrCode+1
	MOVF       R0+2, 0
	MOVWF      _RFRemoteAddrCode+2
	MOVF       R0+3, 0
	MOVWF      _RFRemoteAddrCode+3
;SmartDigitalClock.c,1229 :: 		RFRemoteDatCode = RFRemoteDecode_GetData(RFReceiverBuffer);
	MOVLW      _RFReceiverBuffer+0
	MOVWF      FARG_RFRemoteDecode_GetData_RFRemoteBuff+0
	CALL       _RFRemoteDecode_GetData+0
	MOVF       R0+0, 0
	MOVWF      _RFRemoteDatCode+0
	MOVF       R0+1, 0
	MOVWF      _RFRemoteDatCode+1
;SmartDigitalClock.c,1230 :: 		for( RFReceiverBufferCounter = 0; RFReceiverBufferCounter < 12 ;RFReceiverBufferCounter ++){
	CLRF       _RFReceiverBufferCounter+0
L_main75:
	MOVLW      12
	SUBWF      _RFReceiverBufferCounter+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_main76
;SmartDigitalClock.c,1231 :: 		RFReceiverBuffer [RFReceiverBufferCounter] = 0x00;
	MOVF       _RFReceiverBufferCounter+0, 0
	ADDLW      _RFReceiverBuffer+0
	MOVWF      FSR
	CLRF       INDF+0
;SmartDigitalClock.c,1230 :: 		for( RFReceiverBufferCounter = 0; RFReceiverBufferCounter < 12 ;RFReceiverBufferCounter ++){
	INCF       _RFReceiverBufferCounter+0, 1
;SmartDigitalClock.c,1232 :: 		}
	GOTO       L_main75
L_main76:
;SmartDigitalClock.c,1233 :: 		RFReceiverBufferCounter = 0;
	CLRF       _RFReceiverBufferCounter+0
;SmartDigitalClock.c,1235 :: 		CntFrame = 0;
	CLRF       _CntFrame+0
;SmartDigitalClock.c,1236 :: 		RC2_bit = ~RC2_bit;
	MOVLW
	XORWF      RC2_bit+0, 1
;SmartDigitalClock.c,1238 :: 		for(i = 1; i <= EEPROM_Codes_Cnt; i++){
	MOVLW      1
	MOVWF      _i+0
L_main78:
	MOVF       _i+0, 0
	SUBWF      _EEPROM_Codes_Cnt+0, 0
	BTFSS      STATUS+0, 0
	GOTO       L_main79
;SmartDigitalClock.c,1239 :: 		TempOneLow = i-1+((i-1)<<3);
	MOVLW      1
	SUBWF      _i+0, 0
	MOVWF      R3+0
	CLRF       R3+1
	BTFSS      STATUS+0, 0
	DECF       R3+1, 1
	MOVLW      3
	MOVWF      R2+0
	MOVF       R3+0, 0
	MOVWF      R0+0
	MOVF       R3+1, 0
	MOVWF      R0+1
	MOVF       R2+0, 0
L__main148:
	BTFSC      STATUS+0, 2
	GOTO       L__main149
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	ADDLW      255
	GOTO       L__main148
L__main149:
	MOVF       R3+0, 0
	ADDWF      R0+0, 1
	MOVF       R3+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      R0+1, 1
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	MOVF       R0+1, 0
	MOVWF      _TempOneLow+1
;SmartDigitalClock.c,1240 :: 		if((EEPROM_Read (0x03 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteAddrCode       )) &&
	MOVF       R0+0, 0
	ADDLW      3
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
;SmartDigitalClock.c,1241 :: 		(EEPROM_Read (0x04 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteAddrCode >> 8  )) &&
	MOVF       R0+0, 0
	XORWF      _RFRemoteAddrCode+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
	MOVF       _TempOneLow+0, 0
	ADDLW      4
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       _RFRemoteAddrCode+1, 0
	MOVWF      R2+0
	MOVF       _RFRemoteAddrCode+2, 0
	MOVWF      R2+1
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R2+2
	CLRF       R2+3
	MOVF       R0+0, 0
	XORWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
;SmartDigitalClock.c,1242 :: 		(EEPROM_Read (0x05 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteAddrCode >> 16 )) &&
	MOVF       _TempOneLow+0, 0
	ADDLW      5
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       _RFRemoteAddrCode+2, 0
	MOVWF      R2+0
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R2+1
	CLRF       R2+2
	CLRF       R2+3
	MOVF       R0+0, 0
	XORWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
;SmartDigitalClock.c,1243 :: 		(EEPROM_Read (0x06 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteAddrCode >> 24 )) &&
	MOVF       _TempOneLow+0, 0
	ADDLW      6
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R2+0
	CLRF       R2+1
	CLRF       R2+2
	CLRF       R2+3
	MOVF       R0+0, 0
	XORWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
;SmartDigitalClock.c,1244 :: 		(EEPROM_Read (0x07 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteDatCode       ))  &&
	MOVF       _TempOneLow+0, 0
	ADDLW      7
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       R0+0, 0
	XORWF      _RFRemoteDatCode+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
;SmartDigitalClock.c,1245 :: 		(EEPROM_Read (0x08 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow)==(unsigned short )(RFRemoteDatCode >> 8  )) ){
	MOVF       _TempOneLow+0, 0
	ADDLW      8
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       _RFRemoteDatCode+1, 0
	MOVWF      R2+0
	CLRF       R2+1
	MOVF       R0+0, 0
	XORWF      R2+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L_main83
L__main112:
;SmartDigitalClock.c,1248 :: 		TempOneLow = EEPROM_Read (0x09 + /*((EEPROM_Codes_Cnt i-1)<<3)*/TempOneLow) ;
	MOVF       _TempOneLow+0, 0
	ADDLW      9
	MOVWF      FARG_EEPROM_Read_Address+0
	CALL       _EEPROM_Read+0
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	CLRF       _TempOneLow+1
;SmartDigitalClock.c,1249 :: 		if( TempOneLow == AllON){
	MOVLW      0
	XORWF      _TempOneLow+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main150
	MOVLW      1
	XORWF      _TempOneLow+0, 0
L__main150:
	BTFSS      STATUS+0, 2
	GOTO       L_main84
;SmartDigitalClock.c,1250 :: 		RC5_bit = 1;
	BSF        RC5_bit+0, BitPos(RC5_bit+0)
;SmartDigitalClock.c,1251 :: 		}
	GOTO       L_main85
L_main84:
;SmartDigitalClock.c,1252 :: 		else if( TempOneLow == AllOFF){
	MOVLW      0
	XORWF      _TempOneLow+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main151
	MOVLW      2
	XORWF      _TempOneLow+0, 0
L__main151:
	BTFSS      STATUS+0, 2
	GOTO       L_main86
;SmartDigitalClock.c,1253 :: 		RC5_bit = 0;
	BCF        RC5_bit+0, BitPos(RC5_bit+0)
;SmartDigitalClock.c,1254 :: 		}
	GOTO       L_main87
L_main86:
;SmartDigitalClock.c,1256 :: 		k = 1;
	BSF        _k+0, BitPos(_k+0)
;SmartDigitalClock.c,1257 :: 		if(j==0){
	BTFSC      _j+0, BitPos(_j+0)
	GOTO       L_main88
;SmartDigitalClock.c,1258 :: 		RC5_bit=~RC5_bit;
	MOVLW
	XORWF      RC5_bit+0, 1
;SmartDigitalClock.c,1259 :: 		Tmr0_Cnt = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,1260 :: 		TMR0 = 0;
	CLRF       TMR0+0
;SmartDigitalClock.c,1261 :: 		j=1;
	BSF        _j+0, BitPos(_j+0)
;SmartDigitalClock.c,1262 :: 		}
	GOTO       L_main89
L_main88:
;SmartDigitalClock.c,1265 :: 		Tmr0_Cnt = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,1266 :: 		TMR0 = 0;
	CLRF       TMR0+0
;SmartDigitalClock.c,1267 :: 		}
L_main89:
;SmartDigitalClock.c,1268 :: 		}
L_main87:
L_main85:
;SmartDigitalClock.c,1281 :: 		break;
	GOTO       L_main79
;SmartDigitalClock.c,1282 :: 		}
L_main83:
;SmartDigitalClock.c,1238 :: 		for(i = 1; i <= EEPROM_Codes_Cnt; i++){
	INCF       _i+0, 1
;SmartDigitalClock.c,1284 :: 		}
	GOTO       L_main78
L_main79:
;SmartDigitalClock.c,1285 :: 		if((k) /*|| ((!LearnCodeEvent) && (!k))*/  ){
	BTFSS      _k+0, BitPos(_k+0)
	GOTO       L_main90
;SmartDigitalClock.c,1287 :: 		INTE_bit = 1;
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1288 :: 		PIE1.TMR1IE = 1;
	BSF        PIE1+0, 0
;SmartDigitalClock.c,1289 :: 		State = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,1290 :: 		k=0;
	BCF        _k+0, BitPos(_k+0)
;SmartDigitalClock.c,1291 :: 		LearnCodeEvent = 0;
	BCF        _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
;SmartDigitalClock.c,1292 :: 		}
	GOTO       L_main91
L_main90:
;SmartDigitalClock.c,1294 :: 		if(LearnCodeEvent){
	BTFSS      _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
	GOTO       L_main92
;SmartDigitalClock.c,1295 :: 		State =RFRemoteDecode_Establish_Code ;
	MOVLW      4
	MOVWF      _State+0
;SmartDigitalClock.c,1296 :: 		LearnCodeEvent = 0;
	BCF        _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
;SmartDigitalClock.c,1297 :: 		}
	GOTO       L_main93
L_main92:
;SmartDigitalClock.c,1299 :: 		INTE_bit = 1;
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1300 :: 		PIE1.TMR1IE = 1;
	BSF        PIE1+0, 0
;SmartDigitalClock.c,1301 :: 		State = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,1303 :: 		}
L_main93:
;SmartDigitalClock.c,1304 :: 		}
L_main91:
;SmartDigitalClock.c,1305 :: 		}
L_main73:
;SmartDigitalClock.c,1306 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1307 :: 		case (RFRemoteDecode_Process_Button) :         //case 3
L_main94:
;SmartDigitalClock.c,1308 :: 		while(1){
L_main95:
;SmartDigitalClock.c,1310 :: 		if (Button( &PORTB, 2, 1, RELEASE )){    // Release Button
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      2
	MOVWF      FARG_Button_pin+0
	MOVLW      1
	MOVWF      FARG_Button_time_ms+0
	MOVLW      1
	MOVWF      FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_main97
;SmartDigitalClock.c,1311 :: 		Rc4_bit = ~RC4_bit;
	MOVLW
	XORWF      RC4_bit+0, 1
;SmartDigitalClock.c,1312 :: 		RC5_bit = ~ RC5_bit ;            // Switch ON/OFF Lamp
	MOVLW
	XORWF      RC5_bit+0, 1
;SmartDigitalClock.c,1316 :: 		if((Tmr0_Cnt >= TWO_SECOND) &&(Tmr0_Cnt < EIGHT_SECOND) ){
	MOVLW      0
	SUBWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main152
	MOVLW      61
	SUBWF      _Tmr0_Cnt+0, 0
L__main152:
	BTFSS      STATUS+0, 0
	GOTO       L_main100
	MOVLW      0
	SUBWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main153
	MOVLW      244
	SUBWF      _Tmr0_Cnt+0, 0
L__main153:
	BTFSC      STATUS+0, 0
	GOTO       L_main100
L__main111:
;SmartDigitalClock.c,1321 :: 		LearnCodeEvent = 1;           // Learing code mode
	BSF        _LearnCodeEvent+0, BitPos(_LearnCodeEvent+0)
;SmartDigitalClock.c,1323 :: 		INTE_bit = 1 ;        // enable external interrupt
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1324 :: 		TMR1H       =0x00;    // reset timer1 register
	CLRF       TMR1H+0
;SmartDigitalClock.c,1325 :: 		TMR1L       =0x00;
	CLRF       TMR1L+0
;SmartDigitalClock.c,1326 :: 		State = RFRemoteDecode_Detect_Min_High_Pulse ; //
	MOVLW      1
	MOVWF      _State+0
;SmartDigitalClock.c,1327 :: 		TMR0 = 0;
	CLRF       TMR0+0
;SmartDigitalClock.c,1328 :: 		Tmr0_Cnt1 = 0;
	CLRF       _Tmr0_Cnt1+0
;SmartDigitalClock.c,1330 :: 		}
	GOTO       L_main101
L_main100:
;SmartDigitalClock.c,1331 :: 		else if(  Tmr0_cnt >= EIGHT_SECOND){
	MOVLW      0
	SUBWF      _Tmr0_Cnt+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__main154
	MOVLW      244
	SUBWF      _Tmr0_Cnt+0, 0
L__main154:
	BTFSS      STATUS+0, 0
	GOTO       L_main102
;SmartDigitalClock.c,1333 :: 		EEPROM_Codes_Cnt = 0;
	CLRF       _EEPROM_Codes_Cnt+0
;SmartDigitalClock.c,1334 :: 		EEPROM_Write(0x00, 0); // eeprom has code if 0x00 is not "0".
	CLRF       FARG_EEPROM_Write_Address+0
	CLRF       FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1335 :: 		State = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,1336 :: 		}
	GOTO       L_main103
L_main102:
;SmartDigitalClock.c,1338 :: 		State =  RFRemoteDecode_Detect_Sync_Bit;      // time <2s, turn on/off lamp and no go to learn code
	CLRF       _State+0
;SmartDigitalClock.c,1339 :: 		}
L_main103:
L_main101:
;SmartDigitalClock.c,1341 :: 		INTE_bit = 1 ;        // enable external interrupt
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1342 :: 		TMR1H    =0x00;    // reset timer1 register
	CLRF       TMR1H+0
;SmartDigitalClock.c,1343 :: 		TMR1L    =0x00;
	CLRF       TMR1L+0
;SmartDigitalClock.c,1344 :: 		Tmr0_Cnt = 0;
	CLRF       _Tmr0_Cnt+0
	CLRF       _Tmr0_Cnt+1
;SmartDigitalClock.c,1345 :: 		break;
	GOTO       L_main96
;SmartDigitalClock.c,1346 :: 		}
L_main97:
;SmartDigitalClock.c,1347 :: 		}
	GOTO       L_main95
L_main96:
;SmartDigitalClock.c,1348 :: 		EndOfTimingWindows = 0;
	BCF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,1349 :: 		SyncBitCouter = 0;
	CLRF       _SyncBitCouter+0
;SmartDigitalClock.c,1351 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1352 :: 		case (RFRemoteDecode_Establish_Code) :         //case 4
L_main104:
;SmartDigitalClock.c,1353 :: 		EndOfTimingWindows = 0;
	BCF        _EndOfTimingWindows+0, BitPos(_EndOfTimingWindows+0)
;SmartDigitalClock.c,1354 :: 		SyncBitCouter = 0;
	CLRF       _SyncBitCouter+0
;SmartDigitalClock.c,1357 :: 		TempOneLow =  EEPROM_Codes_Cnt+ (EEPROM_Codes_Cnt<<3) ;
	MOVLW      3
	MOVWF      R2+0
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      R0+0
	CLRF       R0+1
	MOVF       R2+0, 0
L__main155:
	BTFSC      STATUS+0, 2
	GOTO       L__main156
	RLF        R0+0, 1
	RLF        R0+1, 1
	BCF        R0+0, 0
	ADDLW      255
	GOTO       L__main155
L__main156:
	MOVF       _EEPROM_Codes_Cnt+0, 0
	ADDWF      R0+0, 1
	BTFSC      STATUS+0, 0
	INCF       R0+1, 1
	MOVF       R0+0, 0
	MOVWF      _TempOneLow+0
	MOVF       R0+1, 0
	MOVWF      _TempOneLow+1
;SmartDigitalClock.c,1358 :: 		EEPROM_Write( (0x03 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteAddrCode       )));
	MOVF       R0+0, 0
	ADDLW      3
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteAddrCode+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1359 :: 		EEPROM_Write( (0x04 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteAddrCode >> 8  )));
	MOVF       _TempOneLow+0, 0
	ADDLW      4
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteAddrCode+1, 0
	MOVWF      R0+0
	MOVF       _RFRemoteAddrCode+2, 0
	MOVWF      R0+1
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R0+2
	CLRF       R0+3
	MOVF       R0+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1360 :: 		EEPROM_Write( (0x05 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteAddrCode >> 16 )));
	MOVF       _TempOneLow+0, 0
	ADDLW      5
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteAddrCode+2, 0
	MOVWF      R0+0
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R0+1
	CLRF       R0+2
	CLRF       R0+3
	MOVF       R0+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1361 :: 		EEPROM_Write( (0x06 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteAddrCode >> 24 )));
	MOVF       _TempOneLow+0, 0
	ADDLW      6
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteAddrCode+3, 0
	MOVWF      R0+0
	CLRF       R0+1
	CLRF       R0+2
	CLRF       R0+3
	MOVF       R0+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1363 :: 		EEPROM_Write( (0x07 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteDatCode       )));
	MOVF       _TempOneLow+0, 0
	ADDLW      7
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteDatCode+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1364 :: 		EEPROM_Write( (0x08 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(RFRemoteDatCode >> 8  )));
	MOVF       _TempOneLow+0, 0
	ADDLW      8
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _RFRemoteDatCode+1, 0
	MOVWF      R0+0
	CLRF       R0+1
	MOVF       R0+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1365 :: 		EEPROM_Write( (0x09 + (/*EEPROM_Codes_Cnt<<3*/TempOneLow)), ((unsigned short )(LearnMode )));
	MOVF       _TempOneLow+0, 0
	ADDLW      9
	MOVWF      FARG_EEPROM_Write_Address+0
	MOVF       _LearnMode+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1368 :: 		LearnMode = 5; //reset learnmde
	MOVLW      5
	MOVWF      _LearnMode+0
;SmartDigitalClock.c,1369 :: 		EEPROM_Codes_Cnt =EEPROM_Codes_Cnt + 1 ;
	INCF       _EEPROM_Codes_Cnt+0, 1
;SmartDigitalClock.c,1370 :: 		EEPROM_Write(0x00, EEPROM_Codes_Cnt);
	CLRF       FARG_EEPROM_Write_Address+0
	MOVF       _EEPROM_Codes_Cnt+0, 0
	MOVWF      FARG_EEPROM_Write_data_+0
	CALL       _EEPROM_Write+0
;SmartDigitalClock.c,1375 :: 		State = RFRemoteDecode_Detect_Sync_Bit;
	CLRF       _State+0
;SmartDigitalClock.c,1377 :: 		TMR0        =0;
	CLRF       TMR0+0
;SmartDigitalClock.c,1378 :: 		TMR1H       =0x00;
	CLRF       TMR1H+0
;SmartDigitalClock.c,1379 :: 		TMR1L       =0x00;
	CLRF       TMR1L+0
;SmartDigitalClock.c,1380 :: 		TMR0IE_bit  = 1;                   //Why ?
	BSF        TMR0IE_bit+0, BitPos(TMR0IE_bit+0)
;SmartDigitalClock.c,1381 :: 		INTEDG_bit = 0;// Falling
	BCF        INTEDG_bit+0, BitPos(INTEDG_bit+0)
;SmartDigitalClock.c,1382 :: 		Tmr1_Cnt    = 0;
	CLRF       _Tmr1_Cnt+0
;SmartDigitalClock.c,1387 :: 		INTE_bit = 1;
	BSF        INTE_bit+0, BitPos(INTE_bit+0)
;SmartDigitalClock.c,1388 :: 		PIE1.TMR1IE = 1;
	BSF        PIE1+0, 0
;SmartDigitalClock.c,1389 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1391 :: 		case (RFRemoteDecode_Control_Actuators ):      // case 5
L_main105:
;SmartDigitalClock.c,1392 :: 		break;
	GOTO       L_main56
;SmartDigitalClock.c,1393 :: 		}
L_main55:
	MOVF       _State+0, 0
	XORLW      0
	BTFSC      STATUS+0, 2
	GOTO       L_main57
	MOVF       _State+0, 0
	XORLW      1
	BTFSC      STATUS+0, 2
	GOTO       L_main65
	MOVF       _State+0, 0
	XORLW      2
	BTFSC      STATUS+0, 2
	GOTO       L_main72
	MOVF       _State+0, 0
	XORLW      3
	BTFSC      STATUS+0, 2
	GOTO       L_main94
	MOVF       _State+0, 0
	XORLW      4
	BTFSC      STATUS+0, 2
	GOTO       L_main104
	MOVF       _State+0, 0
	XORLW      5
	BTFSC      STATUS+0, 2
	GOTO       L_main105
L_main56:
;SmartDigitalClock.c,1396 :: 		}
	GOTO       L_main53
;SmartDigitalClock.c,1397 :: 		}
L_end_main:
	GOTO       $+0
; end of _main
